#include "lvgl.h"
#include "time.h"
#include "lvgl_gui.h"

LV_IMG_DECLARE(LOGO128x128);
LV_IMG_DECLARE(img_niuniu);

static lv_obj_t *dis;
static lv_obj_t* ta;

static void load_logo(lv_obj_t *src);
static void load_niuniu(lv_obj_t *src);
static void load_info_panel(lv_obj_t *src);

void gui_init(void) {
  lv_obj_clean(lv_scr_act());
  dis = lv_tileview_create(lv_scr_act());
  lv_obj_set_size(dis, 128, 128);
  lv_obj_t *tv0 = lv_tileview_add_tile(dis, 0, 0, LV_DIR_HOR);
  lv_obj_t *tv1 = lv_tileview_add_tile(dis, 1, 0, LV_DIR_HOR);
  lv_obj_t *tv2 = lv_tileview_add_tile(dis, 2, 0, LV_DIR_HOR);

  load_logo(tv0);
  load_niuniu(tv1);
  load_info_panel(tv2);
}

static void load_logo(lv_obj_t *src) {
  lv_obj_t *img = lv_img_create(src);
  lv_obj_center(img);
  lv_img_set_src(img, &LOGO128x128);
}

static void load_niuniu(lv_obj_t *src) {
  lv_obj_t *img = lv_img_create(src);
  lv_obj_center(img);
  lv_img_set_src(img, &img_niuniu);
}

static void load_info_panel(lv_obj_t *src) {
  ta = lv_textarea_create(src);
  lv_obj_set_size(ta, 128, 128);
  lv_textarea_set_max_length(ta, 1024);       // 设置缓冲区，最大1024字符
  lv_obj_center(ta);
  
  lv_obj_set_style_pad_all(ta, 0, LV_PART_MAIN);

  lv_textarea_set_text(ta, ""); // 初始化为空
}

void info_panel_add_text(const char *text) {
  lv_textarea_add_text(ta, text);
  lv_textarea_set_cursor_pos(ta, LV_TEXTAREA_CURSOR_LAST); // 光标置于最后
}

void gui_switch_page(uint8_t num) {
  lv_obj_set_tile_id(dis, num, 0, LV_ANIM_ON);
}
